Digital images and videos are stored and used on many devices, including general-purpose computers, digital still cameras and digital video cameras. Digital images and videos are typically stored in compressed form on devices in order to reduce storage, memory and bandwidth costs. A widely used standard for image compression is the “Joint Photographic Experts Group” or JPEG standard. An emerging new standard for image compression is the JPEG2000 standard. Both JPEG and JPEG2000 are nominally still image compression standards. While JPEG is predominantly used to compress a still image, there are various video encoding formats known loosely as “Motion JPEG”. Motion JPEG encodes each frame of a video as a still image using JPEG, and provides a compressed video stream format for wrapping all the encoded frames of a video into a Motion JPEG encoded stream. However, Motion JPEG was never formally standardized. Currently, the JPEG2000 standard provides for a still image compression mode, which is described in the JPEG 2000 Final Committee Draft Version 1.0, 16 Mar. 2000, ISO/IEC FCD 15444-1 (Part I), and the JPEG 2000 Final Committee Draft, 7 Dec. 2000, ISO/IEC FCD 15444-2 (Part II) publications. It is also proposed that the JPEG2000 standard provide for a video encoding mode known as Motion JPEG2000, which is described in the publication Motion JPEG 2000 Final Committee Draft 1.0, 14 Mar. 2001 ISO/IEC 15444:3 (Part III) 2000. Motion JPEG2000 is analogous to Motion JPEG in that single frames of a video are encoded with JPEG2000 (in a still image mode) and the resulting compressed frames wrapped into a compressed video stream (eg. file format). While there are other video encoding formats, such as the MPEG family, that potentially offer better compression than the JPEG motion family (Motion JPEG or Motion JPEG2000), the JPEG motion family offers several different advantages. In addition Motion JPEG2000 offers a suite of features inherited from JPEG2000 in still image mode.
For the purpose of this description the term “JPEG2000” will be used to refer to the JPEG2000 standard in a still image mode—that is for compressing/decompressing a still image (one frame of a video), and “Motion JPEG2000” (MJ2K) when referring to JPEG2000 standard in a video compressing/decompressing mode.
An important decision to be made when compressing images or videos is how many bytes are available for the compressed images and videos. The higher the compression rate the lower the number of bytes required for storage and transmission. The trade-off is that quality of the resulting decompressed image or video generally decreases as the compression rate increases. One goal is to maximize the compression while maintaining an acceptable level of quality or alternatively maximizing the image or video quality within a constant number of bytes. A technique recommended by the JPEG2000 standard to maximize image quality at a given rate is to use a rate control strategy called the post-coding rate distortion optimization (PCRD-opt). The optimization is employed when the actual coding itself is complete but the available byte budget is exceeded. PCRD-opt is then used to trim back (i.e. to discard part of the compressed data) the compressed data to fit the desired target bit-rate at for example, the highest achievable image quality. One problem with the compression scheme utilizing PCRD-opt as recommended by the JPEG2000 standard is that often code-blocks are overcoded, i.e. more coding passes are made than are necessary. Too much overcoding will slow the compression scheme. Furthermore, overcoding increases the amount of memory required to buffer the intermediate compressed data.
In addition to rate control there are various important compression system parameters affecting quality. For example, in JPEG and JPEG2000 a set of subband or coefficient weights is used to emphasize the importance of low frequencies as opposed to high frequencies commensurate with the response of the human visual system. In JPEG2000 these are typically referred to as “human visual weights”.
Compressing a video sequence introduces a different set of distortions than are encountered in encoding a single frame. For example, when MJ2K videos are decoded and displayed, distortion can appear as a type of rapidly moving noise, called flicker. Often this flicker is not readily apparent in each decompressed frame, and only becomes apparent when the frames are displayed in rapid succession as when displaying the decoded video. In addition since MJ2K encodes each video frame independently, when PCRD-opt is used, corresponding code-blocks in subsequent frames are often truncated to different bit-planes resulting in another form of flicker called “code-block truncation flicker”. Various sets of human visual weights have been proposed as means of ameliorating flicker. These visual weightings are generally derived according to the human contrast sensitivity function (CSF). Visual weighting typically consists of a fixed weighting for the luminance and chrominance components according to the CSF. However, the improvement from such specific weights for reducing flicker is not substantial, and further improvement remains desirable.